Welcome to pandas!

2.16 添加列的应用,求行总分?

import pandas as pd

path = r "D:\Pyobject2023\object\测试\测试素材.xlsx"

df = pd.read_excel(path)

print (df)

返回:

姓名 年龄 考试日期 数学 语文 英语
0 小明 25 2021-04-14 85.5 67 84
1 小张 36 2021-03-15 89.0 100 34
2 小王 47 2020-09-19 95.0 55 27
3 小李 21 2019-10-25 88.5 95 99
4 小四 29 2019-08-18 99.0 43 73
5 小管 33 2021-02-14 100.0 66 65

import pandas as pd

path = r "D:\Pyobject2023\object\测试\测试素材.xlsx"

df = pd.read_excel(path)

df[ "总分" ]=df.语文+df.英语+df.数学

print (df)

返回:

姓名 年龄 考试日期 数学 语文 英语 总分
0 小明 25 2021-04-14 85.5 67 84.0 236.5
1 小张 36 2021-03-15 89.0 100 34.0 223.0
2 小王 47 2020-09-19 95.0 55 NaN NaN
3 小李 21 2019-10-25 88.5 95 99.0 282.5
4 小四 29 2019-08-18 99.0 43 73.0 215.0
5 小管 33 2021-02-14 100.0 66 65.0 231.0

上面与下面的结果是一样的,但是前一种是写死的用法,后一种是可以用变更

import pandas as pd

path = r "D:\Pyobject2023\object\测试\测试素材.xlsx"

df = pd.read_excel(path)

df[ "总分" ]=df[ "语文" ]+df[ "英语" ]+df[ "数学" ]

print (df)

返回:

姓名 年龄 考试日期 数学 语文 英语 总分
0 小明 25 2021-04-14 85.5 67 84.0 236.5
1 小张 36 2021-03-15 89.0 100 34.0 223.0
2 小王 47 2020-09-19 95.0 55 NaN NaN
3 小李 21 2019-10-25 88.5 95 99.0 282.5
4 小四 29 2019-08-18 99.0 43 73.0 215.0
5 小管 33 2021-02-14 100.0 66 65.0 231.0

有缺失值的处理:

import pandas as pd,numpy as np

path = r "D:\Pyobject2023\object\测试\测试素材.xlsx"

df = pd.read_excel(path)

arr=np.array(df[ "英语" ]) # 指定有缺失值的列,并把其变成一维数组

arr[np.isnan(arr)]=0 # 判定指定一维数组有缺失值的元素,并赋值为0

df[ "英语" ]=arr # 将英语一列的值再写回DateFrame

df[ "总分" ]=df[ "语文" ]+df[ "英语" ]+df[ "数学" ]

print (df)

返回:

姓名 年龄 考试日期 数学 语文 英语 总分
0 小明 25 2021-04-14 85.5 67 84.0 236.5
1 小张 36 2021-03-15 89.0 100 34.0 223.0
2 小王 47 2020-09-19 95.0 55 0.0 150.0
3 小李 21 2019-10-25 88.5 95 99.0 282.5
4 小四 29 2019-08-18 99.0 43 73.0 215.0
5 小管 33 2021-02-14 100.0 66 65.0 231.0